#ifndef __APP_BUFFER_H__
#define __APP_BUFFER_H__
#include <pthread.h>

typedef struct 
{
	char *ptr; // 数据的指针
	int total_size;//缓存的总大小
	int len;//缓存中已存储数据的大小
	int offset;/*数据的起始位置的偏移量*/
	pthread_mutex_t lock;
}Buffer;

/*
初始化 缓存
size 缓存的大小
return 返回 初始化后的缓存指针
*/
Buffer *app_buffer_init(int size);

/*
释放指针
buffer 缓存指针
无返回值
*/
void app_buffer_free(Buffer *Buffer);

/*
向缓存中写入数据
buffer 缓存指针
data 要写入的数据
size 要写入的数据长度

return 写入是否成功  0成功 失败-1 
*/
int app_buffer_write(Buffer *Buffer, const char *data, int size);

/*
从缓存中读取数据
buffer 缓存指针
data 接受读取数据的指针（数组）
len 容器长度 
return 读取是否成功  读取的数据长度 失败-1
*/
int app_buffer_read(Buffer *Buffer, char *data, int len);

#endif